//
//  ASyncURLConnection.h
//  MacTestProject
//
//  Created by LiuLichen on 2022/5/17.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

// typedef Block类型变量，提高源代码的可读性

typedef void (^completeBlock_t)(NSData* data);
typedef void (^errorBlock_t)(NSError* error);

@interface ASyncURLConnection : NSURLConnection {
    //由于ARC有效，所以以下的没有显式附加所有权修饰符的变量全部为附有__strong修饰符的变量。
    NSMutableData* data_;
    completeBlock_t completeBlock_;
    errorBlock_t errorBlock_;
}

// 为了提高源代码的可读性，使用typedef的Block类型变量作为参数
+ (id) request:(NSString*)requestUrl
 completeBlock:(completeBlock_t)completeBlock
    errorBlock:(errorBlock_t)errorBlock;

- (id) initWithRequest:(NSString*)requestUrl
         completeBlock:(completeBlock_t)completeBlock
            errorBlock:(errorBlock_t)errorBlock;

@end

NS_ASSUME_NONNULL_END
